package com.nuanshui.heatedloan.fund.facade;

import com.nuanshui.heatedloan.fund.model.UserCrowFunding;
import com.nuanshui.heatedloan.fund.vo.CrowdfundingPriceVO;
import com.nuanshui.heatedloan.fund.vo.CrowdfundingVO;

import java.util.Date;
import java.util.List;
import java.util.Map;



/**
 * 用户众筹产品的相关实现层
 * @ClassName: CrowdfundingService 
 * @author guohao
 * @date 2016年3月7日 下午3:15:36 
 * @since 2.5.0
 */
public interface CrowdfundingService {
	/**
	 * 获取用户的众筹相关信息
	 * @param 
	 * @author zhangqing
	 * @date 2016年3月7日 下午4:32:55
	 * @since 2.5.0
	 */
	Map<String, Object> getUserCrowdfundingInfo(String currentUserId);
	
	/**
	 * 获取众筹项目的列表
	 * @param 
	 * @author zhangqing
	 * @date 2016年3月7日 下午6:53:48
	 * @since 2.5.0
	 */
	List<CrowdfundingVO> getCrowdfundingList(String currentUserId);
	
	/**
	 * 获取用户众筹的认购记录
	 * @param 
	 * @author zhangqing
	 * @date 2016年3月8日 上午10:21:14
	 * @since 2.5.0
	 */
	List<CrowdfundingVO> getUserCrowdfundingRecords(Integer type, String currentUserId);
	
	/**
	 * 获取众筹详情
	 * @param 
	 * @author zhangqing
	 * @date 2016年3月8日 下午2:37:20
	 * @since 2.5.0
	 */
	CrowdfundingVO getCrowdfunding(String crowdfundingId, String currentUserId);
	
	/**
	 * 创建用户购买的时间
	 * @param money 花费的金额
	 * @param crowFundId 众筹id 
	 * @author guohao
	 * @date 2016年3月9日 上午11:06:36
	 */
	String createUserCrowdFunding(Long money, String crowFundId, String currentUserId);

	
	/**
	 * 确认购买的众筹
	 * @param 
	 * @author guohao
	 * @date 2016年3月9日 下午2:15:07
	 */
	boolean confirmBuyCrowdFunding(String dealNum, String platform);
	
	
	/**
	 * 根据交易号获取众筹项目
	 * @param 
	 * @author guohao
	 * @date 2016年3月9日 下午2:18:53
	 */
	UserCrowFunding getUserCrowdfundingByDealnum(String dealNum);


    /**
     * 把未支付的设置为失效状态
     * @param 
     * @author guohao
     * @date 2016年3月9日 下午3:07:18
     * @since 2.5.0
     */
	void failUserCrowdfunding(String dealNum);
	/**
	 * 获取最新的众筹时间
	 * @author hongyi
	 * @date 2016年3月24日下午12:04:10
	 * @return
	 */
	Date getCreatedAtTime();
	
	/**
	 * 获取众筹信息
	 * @param 
	 * @author zhangqing
	 * @date 2016年3月31日 下午6:57:22
	 * @since 2.6.0
	 */
	CrowdfundingVO getCrowdfundingSimpleInfo(String crowdfundingId);
	
	/**
	 * 结算众筹金额
	 * @author fuxinlin
	 * @date 2016年4月15日上午11:01:12
	 * @return
	 */
	boolean settleCrowdfunding();
	
	/**
	 * 获取重酬结算的相关金额
	 * @param @param settleDealNum
	 * @param @return
	 * @author guohao
	 * @date 2016年5月3日 下午5:24:48
	 * @since $
	 */
	CrowdfundingPriceVO loadCrowdfundingPriceVOByDealnum(String settleDealNum);
	
	/**
	 * 获取最新的众筹信息
	 * @author Gonzo
	 * @date 2016年8月17日下午7:13:05
	 * @return
	 */
	CrowdfundingVO getNewcrowdfunding();
}
